package cn.hycat.leetcode.middle;

import java.util.Arrays;

/**
 * @author 吕泽浩业
 * @version 1.0
 */
public class L31下一个排列 {
    public void nextPermutation(int[] nums) {
        boolean flag = true;///
        for(int i = nums.length - 1; i > 0; i--) {
            for(int j = i - 1; j >= 0; j--) {
                if(nums[i] > nums[j]) {
                    run(nums, i, j);
                    flag = false;
                    break;
                }
            }
            if(!flag) break;
        }
        if(flag) Arrays.sort(nums);
    }

    public static void run(int[] a, int i, int j) {
        int temp = a[i];
        for(int k = j + 1; j <= i; k++) {
            a[k] = a[k-1];
        }
        a[j] = temp;
    }
}
